An integrated circuit often uses a bus to route groups of signals between different parts of the integrated circuit. The bus comprises several signal lines made of a low-impedance conductor, typically metal, and couples to a plurality of circuits for receiving signals therefrom or providing signals thereto. Buses are used in microprocessor integrated circuits to internally route address and data signals between blocks. For example, in response to an instruction, a microprocessor data register couples its contents onto a data bus and the data is received from the bus by an arithmetic logic unit.
In order to optimize the speed of the integrated circuit, it is generally necessary to preset or precharge the voltage level on the bus prior to the data transfer. In a simple form, single transistors made conductive by a precharge control signal couple corresponding bus lines to a predetermined voltage, for instance a positive power supply voltage. Several different precharge schemes are possible, depending on the electrical characteristics of the bus and the integrated circuit technology available, and the precharge voltage is chosen to increase speed and reduce power consumption. For example, a complementary metal-oxide-semiconductor (CMOS) microprocessor with long and highly capacitive bus lines may be precharged to an N-channel logic high voltage precharge level to optimize speed. The logic high voltage of the N-channel transistor is somewhat below a positive power supply voltage, caused by a gate-to-source threshold voltage drop which occurs when the N-channel transistor is coupled between a positive power supply voltage terminal and the bus. It is possible, furthermore, to have buses which couple to two types of circuits; for example, circuits with N-channel transistor output levels and circuits with full CMOS output levels may be coupled to the same bus. The CMOS logic high voltage is virtually equal to the positive power supply voltage, and thus exceeds the precharge level. Having a CMOS output level left on the bus from the previous cycle presents a problem if the N-channel precharge level is desired, and simple precharge circuits no longer suffice.